package com.ruoyi.system.service;

import java.util.Date;
import java.util.List;

import com.ruoyi.system.domain.CrmUser;
import com.ruoyi.system.domain.dto.LitterBsCityDTO;
import org.springframework.stereotype.Repository;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2020-10-12
 */
public interface ICrmUserService
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public CrmUser selectCrmCustomerById(Long id);
    //地图形式查看 某个城市的客户情况
    public LitterBsCityDTO selectCrmCustomerListByMap(CrmUser crmCustomer, Integer type);

    /**
     * 查询客户信息
     * @param crmCustomer
     * @return
     */
    public List<CrmUser> selectCrmCustomerList(CrmUser crmCustomer);

    /**
     *
     * @param crmCustomer
     * @return
     */
    public List<CrmUser> selectCrmCustomerListNew(CrmUser crmCustomer, String title);

    public List<CrmUser> selectCrmUserListByTime(Date startTime, Date endTime, Long createUser);

    public List<CrmUser> selectCrmUserListByNoTime(Date startTime, Date endTime, Long createUser);
    /**
     * 查看未来几天内过生日的人
     * @param day 天数

     * @param createUser
     * @return
     */
    public List<CrmUser> selectCrmUserListByBirthDayByDay(int day, Long createUser);
    /**
     *查看周期内过生日的人
     * @param type type=1代表今天 2代表本周 3代表下周4代表本月5代表下月
     * @param createUser
     * @return
     */
    public List<CrmUser> selectCrmUserListByBirthDay(Integer type, Long createUser);

    /**
     * 新增【请填写功能名称】
     * 
     * @param crmCustomer 【请填写功能名称】
     * @return 结果
     */
    public int insertCrmCustomer(CrmUser crmCustomer, Long userId);
    public int batchInsertCrmCustomer(List<CrmUser> crmCustomerList);

    /**
     * 修改【请填写功能名称】
     * 
     * @param crmCustomer 【请填写功能名称】
     * @return 结果
     */
    public int updateCrmCustomer(CrmUser crmCustomer);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCrmCustomerByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCrmCustomerById(Long id);


    /**
     * 最近联系的用户
     * @return
     */
    public List<CrmUser> recentlyLinkedCustomer(Long userId);

    /**
     * 根据客户删除任务
     * @param crmCustomerId
     * @param userId
     * @return
     */
    public Integer deleteCustomerAndJob(Long crmCustomerId,Long userId);

    /**
     * 获取附近的客户
     * @param id
     * @return
     */
    public List<CrmUser> getNearCrmCustomer(Long id, Integer distance, Integer count);


    /**
     *  根据坐标 获取附近的客户
     * @return
     */
    public List<CrmUser> getNearCrmCustomerByLgLa(Long userId,String lgla,Integer distance);


    /**
     * 查询【请填写功能名称】列表
     *
     * @param ids 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<CrmUser> selectCrmCustomerListByIds(List<Long> ids);

}
